perm filename GETPTS.F4[P11,LCS] blob
sn#570614 filedate 1981-03-09 generic text, type T, neo UTF8
C****** SUBRS GETPTS, GUPDAT
SUBROUTINE GETPTS(NN)
C NN IS FIRST ITEM TO LOOK AT
INTEGER PWDS
COMMON/XRN/RN(1) /KJY/ K,J /POSI/STFF(8),JJ2
COMMON R2,JA,CENTR,J2,RJQ(18),RX6,JR,L,RDIS,VY,JQ(17)
1/PTR/PWDS(1) /RINP/R(500),N(350),NP(250) /LIMIT/LIM,ITEM
EQUIVALENCE (R4,RJQ(2)),(R5,RJQ(3)),(R6,RJQ(4))
J=0
K=0
C J AND K ARE COUNTERS FOR N AND NP ARRAYS.
DO 1 M=NN,ITEM
L=PWDS(M)
RY=RN(L+1)
IF(R2.GE.8)GO TO 3
C >=8 MEANS LOOK AT ALL STAVES
IF(R2.NE.RN(L+2))GO TO 1
C SKIP IF NOT RIGHT STAFF NUM.
3 IF(R6.LE.0)GO TO 9
C CHECK CODE NUM
IF(R6.NE.RY)GO TO 1
9 IF(OUTLMT(R4,R5,RN(L+3)))GO TO 2
C IN LIMITS?
CALL GUPDAT(M,L,3)
C GO PUT AWAY POINTER TO P3 OF THIS ITEM
K=K+1
NP(K)=L
C NP SAVES POINTER TO P3 FOR USE IN JUSTIFY ROUTINE
2 CNT=RN(L)
C GET THE WD CNT
IF(RY.EQ.2)GO TO 8
C FOR 'CENTERED' RESTS
IF(RY.LT.4)GO TO 1
IF(RY.GT.7)GO TO 1
IF(RY.EQ.6)GO TO 6
C TWO-ENDED ITEM?
7 IF(CNT.GT.3)GO TO 5
GO TO 1
6 IF(CNT.LT.8)GO TO 8
IF(RN(L+7).LT.0)GO TO 8
IF(R(L+10).EQ.0)GO TO 8
IF(R(L+8).LE.0)GO TO 8
C IGNORE P8 IF IT IS 0 OR -
IF(OUTLMT(R4,R5,RN(L+8)))GO TO 8
C IN LIMITS?
CALL GUPDAT(M,L,8)
C PUT AWAY POINTER TO P8 FOR THIS BEAM
8 IF(CNT.LT.7)GO TO 5
IF(R(L+9).LE.0)GO TO 5
C WON'T LOOK AT NEG. POS.
IF(RY.EQ.2)GO TO 10
C (NEW REST CENTERING)
IF(R(L+8).NE.0)GO TO 10
IF(R(L+7).GE.0)GO TO 5
C USE R9 IF R9<0 AND (R8≠0 OR R7<0)
10 IF(OUTLMT(R4,R5,RN(L+9)))GO TO 1
C IN LIMITS?
CALL GUPDAT(M,L,9)
5 IF(RY.EQ.2)GO TO 1
IF(OUTLMT(R4,R5,RN(L+6)))GO TO 1
C IN LIMITS?
CALL GUPDAT(M,L,6)
C PUT AWAY POINTER TO P6 FOR ALL 2-SIDED ITEMS.
1 CONTINUE
END
SUBROUTINE GUPDAT(M,L,KK)
COMMON /KJY/ K,J /POSI/STFF(8),JJ2 /RINP/R(500),N(350),NP(250)
J=J+1
N(J)=L+KK
C SETS UP POINTERS FOR USE IN MOVES, ETC.
IF(M.LT.JJ2)JJ2=M
END